<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>魔术常量</title>
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-base.css" />
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-medium.css" />

 </head>
 <body class="docs"><div class="navbar navbar-fixed-top">
  <div class="navbar-inner clearfix">
    <ul class="nav" style="width: 100%">
      <li style="float: left;"><a href="language.constants.predefined.html">« 预定义常量</a></li>
      <li style="float: right;"><a href="language.expressions.html">表达式 »</a></li>
    </ul>
  </div>
</div>
<div id="breadcrumbs" class="clearfix">
  <ul class="breadcrumbs-container">
    <li><a href="index.html">PHP Manual</a></li>
    <li><a href="language.constants.html">常量</a></li>
    <li>魔术常量</li>
  </ul>
</div>
<div id="layout">
  <div id="layout-content"><div id="language.constants.magic" class="sect1">
  <h2 class="title">魔术常量</h2>
   <p class="para">
    有九个魔术常量它们的值随着它们在代码中的位置改变而改变。例如
    <strong><code>__LINE__</code></strong> 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写，如下：
   </p>
   <p class="para">
    <table class="doctable table">
     <caption><strong>PHP 的魔术常量</strong></caption>
     
      <thead>
       <tr>
        <th>名字</th>
        <th>说明</th>
       </tr>

      </thead>

      <tbody class="tbody">
       <tr id="constant.line">
        <td><strong><code>__LINE__</code></strong></td>
        <td>
         文件中的当前行号。
        </td>
       </tr>

       <tr id="constant.file">
        <td><strong><code>__FILE__</code></strong></td>
        <td>
         文件的完整路径和文件名。如果用在被包含文件中，则返回被包含的文件名。
        </td>
       </tr>

       <tr id="constant.dir">
        <td><strong><code>__DIR__</code></strong></td>
        <td>
         文件所在的目录。如果用在被包括文件中，则返回被包括的文件所在的目录。它等价于
         <code class="literal">dirname(__FILE__)</code>。除非是根目录，否则目录中名不包括末尾的斜杠。
        </td>
       </tr>
       
       <tr id="constant.function">
        <td><strong><code>__FUNCTION__</code></strong></td>
        <td>
         当前函数的名称。匿名函数则为 <code class="literal">{closure}</code>。
        </td>
       </tr>

       <tr id="constant.class">
        <td><strong><code>__CLASS__</code></strong></td>
        <td>
         当前类的名称。类名包括其被声明的作用域（例如
         <code class="literal">Foo\Bar</code>）。当用在 trait 方法中时，__CLASS__
         是调用 trait 方法的类的名字。
        </td>
       </tr>

       <tr id="constant.trait">
        <td><strong><code>__TRAIT__</code></strong></td>
        <td>
         Trait 的名字。Trait 名包括其被声明的作用域（例如
         <code class="literal">Foo\Bar</code>）。
        </td>
       </tr>

       <tr id="constant.method">
        <td><strong><code>__METHOD__</code></strong></td>
        <td>
         类的方法名。
        </td>
       </tr>

       <tr id="constant.namespace">
        <td><strong><code>__NAMESPACE__</code></strong></td>
        <td>
         当前命名空间的名称。
        </td>
       </tr>

       <tr id="constant.coloncolonclass">
        <td><strong><code><span class="replaceable">ClassName</span>::class</code></strong></td>
        <td>
          完整的类名。
        </td>
       </tr>

      </tbody>
     
    </table>

   </p>

   <div class="sect2">
   <h3 class="title">参见</h3>
    <p class="para">
     <ul class="simplelist">
      <li class="member"><a href="language.oop5.basic.html#language.oop5.basic.class.class" class="link">::class</a></li>
      <li class="member"><span class="function"><a href="function.get-class.html" class="function">get_class()</a></span></li>
      <li class="member"><span class="function"><a href="function.get-object-vars.html" class="function">get_object_vars()</a></span></li>
      <li class="member"><span class="function"><a href="function.file-exists.html" class="function">file_exists()</a></span></li>
      <li class="member"><span class="function"><a href="function.function-exists.html" class="function">function_exists()</a></span></li>
     </ul>
    </p>
   </div>

  </div></div></div></body></html>